Discussion aide:Pywikipédia

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Une page de Wikipédia, l'encyclopédie libre.

Utilisation de pywikipedia replace.py pour un MediaWiki[modifier le code]

J'ai un problème avec l'utilisation du bot Pywikipedia et son script replace.py pour mon installation MediaWiki.

Déjà :

  • ma version de MediaWiki est la 1.6.7
  • j'ai installé les dernières versions en date de Python et Pywikipedia
  • j'ai créé un utilisateur Orthobot sur mon wiki qui officiera des corrections orthographiques

J'ai installé un user-config.py dans le dossier de Pywikipedia que voici :

ainsi qu'un fichier esopedia_family.py dans le sous-dossier families que voici :

Or, quand je lance dans mon cmd Python ainsi :


  • 1) je tape :
   python.exe c:\pywikipedia\login.py

=> Là, aucun souci, il me demande mon mot de passe et me dit qu'il devrait être connecté.


  • 2) je tape :
   python.exe c:\pywikipedia\replace.py -page:Abhava "sanscrit" "sanskrit"

=> Il trouve la page, identifie le terme "sanscrit", me propose bien "sanskrit" à la place, charge un token, me dit que la page a été modifiée. Puis, il affiche le code source HTML de la page et s'interrompt, comme s'il avait terminé son travail. NOTE : les caractères accentués à l'intérieur de la page / article du wiki visé(e) sont interprétés de manière complètement bizarre, par contre.


Sauf que la page n'a rien de changé ! A noter que cette page est une page de test car le but est de faire un remplacement massif "sanscrit" vers "sanskrit" pour tous les articles d'une catégorie bien spécifique de ce wiki.


Bref : quelqu'un a une idée ?

Que dit le message html ? Le canal d'aide de pywikipedia est irc://irc.freenode.org/pywikipediabot. Tavernier (d) 8 février 2008 à 12:27 (CET)[répondre]
La page html ? C'est étrange !! Peut-tu nous copier la sortie ici ?
NicDumZ ~ 8 février 2008 à 17:26 (CET)[répondre]
A vrai dire, pour l'instant, j'ai en partie résolu le problème mais en partie seulement : le bot est en train de travailler (ça fonctionne) mais il le fait en anonyme. En fait, apparemment, il s'agit d'un problème d'identification du bot (le code HTML de la page traitée n'apparaît plus une fois qu'il est parvenu à la traiter : j'imagine que ce code HTML de la page à modifier était généré par le fait qu'il n'arrivait pas à éditer la page, faute d'autorisation pour les uilisteurs anonymes) ! J'explique :

Mon Wiki est certes public mais fermé à l'édition. Comprendre que seuls ceux qui ont un compte peuvent écrire sur le Wiki... mais que les anonymes ne peuvent pas ouvrir de compte (subtilité, donc, pour que seul l'administrateur - moi en l'occurence - puisse ouvrir les comptes des utilisateurs). En gros, ça se traduit comme ça dans mon LocalSettings.php :

$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['*']['edit'] = false;


Or, j'ai testé de lancer le Bot en laissant l'édition ouverte aux utilisateurs anonymes (en changeant la valeur de la deuxième ligne ci-dessus en "= true"). Et là, miracle, le Bot parvient à éditer la page et à faire la modification sans problème.

Seul truc bizarre, il apparaît sous la forme de mon adresse IP, comme un utilisateur anonyme, et pas comme "Orthobot". Pourtant, aussi bien en lançant login.py avant le replace.py, ou bien en lançant replace.py tout seul, le script lancé par python.exe me demande de taper le mot de passe du compte d"Orthobot (ce que je fais et il me dis que "It should be logged".

Sauf que l'historique d'un article édité me dit que l'édition a été faite par une adresse IP anonyme. Donc, le bot ne s'identifie pas. Et la question que je me pose c'est pourquoi (ça serait un peu plus propre dans les historiques et modifications récentes plutôt que mon adresse IP affichée ainsi).

Du coup, je ne sais que penser et je ne sais pas comment forcer son identification. Surtout que, le temps que le bot travailler, l'accès au Wiki est ouvert alors que je voudrais qu'il reste fermé. Une idée ? Urobore (d) 8 février 2008 à 19:03 (CET)[répondre]
Personne qui sache pourquoi et comment faire pour que le Bot soit identifié ? Urobore (d) 10 février 2008 à 12:28 (CET)[répondre]
Il se peut que la version de mediawiki est incompatible avec la version récente de pywikipediabot. Tavernier (d) 16 février 2008 à 12:28 (CET)[répondre]
Non, ce n'était pas cela. J'ai simplement installé la version de Pywikipedia la plus récente ( voir ici et cela a tout naturellement résolu le problème. Il faudrait mettre à jour la version disponible sur SourceForce, par contre, parce qu'elle n'est pas à jour depuis août 2007. Merci pour tout, en tout cas ! Urobore (d) 16 février 2008 à 14:59 (CET)[répondre]

Utilisation des expressions rationnelles pour Python[modifier le code]

Bonjour. Je ne sais pas si c'est le meilleur endroit pour demander cela mais je tente. J'essaie d'utiliser replace.py de Pywikipedia pour un projet MediaWiki indépendant. Cela fonctionne bien mais je ne comprends pas comment fonctionnent les expressions rationnelles de Python qu'on peut appeler par l'argument -regex. Je suis arrivé à supprimer des sauts de lignes indésirés (en mettant replace.py -regex "\n" "") mais je ne parviens pas à remplacer des sauts de ligne exprimés par <br /> par un saut de ligne, justement.

Mon but, ce serait de remplacer deux <br /><br /> par un saut de ligne de type "\n". Sauf que je ne parviens pas rentrer la bonne expression rationnelle (replace.py écrit \n au lieu de faire un saut de ligne).

Comment faire ? Urobore (d) 16 février 2008 à 01:44 (CET)[répondre]

Sous Unix, il est possible de taper python replace.py -regex "<br ?/><br ?/>" ", de taper "entrée", puis d'ajouter le guillement manquant (avant un dernier "entrée")
NicDumZ ~ 16 février 2008 à 01:55 (CET)[répondre]
Bonjour, NicDumZ, et merci pour cette réponse. J'utilise Windows et pas Unix : est-ce que cela fonctionne de la même manière ? Bon, ben, j'ai la confirmation : non, ça ne fonctionne pas de la même manière. Si quelqu'un sait... Urobore (d) 16 février 2008 à 10:41 (CET)[répondre]
Il est possible qu'insérer un ^ puis deux entrées fasse le même effet, mais je ne peux pas le tester :) NicDumZ ~ 16 février 2008 à 12:16 (CET)[répondre]
J'ai installé la version de Pywikipedia la plus récente ( voir ici et cela a tout naturellement résolu le problème. Il faudrait mettre à jour la version disponible sur SourceForce, par contre, parce qu'elle n'est pas à jour depuis août 2007. Merci pour tout, en tout cas ! Urobore (d) 16 février 2008 à 14:59 (CET)[répondre]
Lorsque tu parlais de la "version la plus récente", je croyais que tu faisais mention à cette version. En effet, le cadriciel disponible sur sourceforge n'a pas été mis à jour depuis belle lurette. Tavernier (d) 17 février 2008 à 00:11 (CET)[répondre]
Je pense que cela peut induire les gens en erreur. Sans compter que cette version disponible sur SourceForge n'est pas du tout exempt d'erreurs (cf. le problème du login.py et celui du replace.py que j'ai précisé ci-dessus). Or, ces deux problèmes ont été résolus depuis belle lurette dans le code de Pywikipedia. Le pire, c'est que j'étais persuadé que la version disponible sur SourceForge était la dernière (ou, tout du moins, qu'elle était peut-être pas la dernière en développement mais qu'elle était "stable", ce qui manifestement n'était pas tout à fait le cas. Quelqu'un sait avec qui il faut voir pour que la version dispo sur SourceForge soit au moins mis à jour ? Avec valhalla, le développeur anglophone, peut-être (avec qui j'ai eu le plaisir d'échanger sur le channel IRC) ? Urobore (d) 17 février 2008 à 13:15 (CET)[répondre]